/*
 * trace_CmdListMeta.h
 *
 *  Created on: 2012/07/11
 *      Author: guanxiaoying
 */

#ifndef TRACE_CMDLISTMETA_H_
#define TRACE_CMDLISTMETA_H_
/*********************************
  The meta data of LinkCommandList.
  It has same index with LinkCommandList.
	  It means: If we want to access the meta data of the 5th record
	     in LinkCommandList.we can access the 5th record in this table.

  This table is created automatically at the beginning of Tr_CmdTraceAllEntries,
  and cleared automatically at the end of Tr_CmdTraceAllEntries.
*********************************/
typedef struct {
	BOOL (*clear)( VOID );
	BOOL (*alloc)( AST );
	AST  (*getMax)( VOID );
	/* property below: traced flag. Be used when making PATH-INFO(stCmdPathInfoAccess).  */
	ACCESS_U2_FIELD times;
	/* property below: the innermost loop that the command belongs to  */
	ACCESS_IDX_FIELD loopInfo;
	/* property below: for the commands except flow-control commands.
	 * the PATH(stCmdPathInfoAccess) that the command belongs to  */
	ACCESS_IDX_FIELD pathInfo;
	/* property below: for the flow-control commands.
	 * the PATHs(stCmdPathInfoAccess) that ends with this flow-control command */
	ACCESS_IDX_FIELD pathIn;
	/* property below: for the flow-control commands.
	 * the PATHs(stCmdPathInfoAccess) that begins with this flow-control command */
	ACCESS_IDX_FIELD pathOut;
	/* property below: record pathParam for branch or confluence command */
//	ACCESS_IDX_FIELD pathParam;
	ACCESS_IDX_FIELD logging;
}CMDLISTMETAACCESS;
extern const CMDLISTMETAACCESS stCmdListMetaAccess;

#endif /* TRACE_CMDLISTMETA_H_ */
